using System;
using System.Data;
using System.Text;
using System.Collections.Generic;

#region user code using
#endregion user code using

namespace Adoor.Emprunts
{
	#region user code namespace
	#endregion user code namespace
	
	
	public abstract class Adherent
	#region user code implements
	#endregion user code implements
	{
	
		public const int NomLength = 30;
		
		public virtual System.String Nom
		{
			get
			{
				System.String  value = this.m_Nom;
				#region user code get public System.String Nom
				#endregion user code get public System.String Nom
				return value; 
			}
			set
			{ 
				#region user code set public System.String Nom
				#endregion user code set public System.String Nom				
				this.m_Nom = value;
				OnNomChanged();
			}
		}
		
		public event EventHandler NomChanged;
		
		protected virtual void OnNomChanged()
		{				
			if(NomChanged != null)
				NomChanged(this, System.EventArgs.Empty);			
					
			#region user code OnNomChanged
			#endregion user code OnNomChanged				
		}

		public const int PrenomLength = 30;
		
		public virtual System.String Prenom
		{
			get
			{
				System.String  value = this.m_Prenom;
				#region user code get public System.String Prenom
				#endregion user code get public System.String Prenom
				return value; 
			}
			set
			{ 
				#region user code set public System.String Prenom
				#endregion user code set public System.String Prenom				
				this.m_Prenom = value;
				OnPrenomChanged();
			}
		}
		
		public event EventHandler PrenomChanged;
		
		protected virtual void OnPrenomChanged()
		{				
			if(PrenomChanged != null)
				PrenomChanged(this, System.EventArgs.Empty);			
					
			#region user code OnPrenomChanged
			#endregion user code OnPrenomChanged				
		}

		public const int RueLength = 30;
		
		public virtual System.String Rue
		{
			get
			{
				System.String  value = this.m_Rue;
				#region user code get public System.String Rue
				#endregion user code get public System.String Rue
				return value; 
			}
			set
			{ 
				#region user code set public System.String Rue
				#endregion user code set public System.String Rue				
				this.m_Rue = value;
				OnRueChanged();
			}
		}
		
		public event EventHandler RueChanged;
		
		protected virtual void OnRueChanged()
		{				
			if(RueChanged != null)
				RueChanged(this, System.EventArgs.Empty);			
					
			#region user code OnRueChanged
			#endregion user code OnRueChanged				
		}

		public const int VilleLength = 30;
		
		public virtual System.String Ville
		{
			get
			{
				System.String  value = this.m_Ville;
				#region user code get public System.String Ville
				#endregion user code get public System.String Ville
				return value; 
			}
			set
			{ 
				#region user code set public System.String Ville
				#endregion user code set public System.String Ville				
				this.m_Ville = value;
				OnVilleChanged();
			}
		}
		
		public event EventHandler VilleChanged;
		
		protected virtual void OnVilleChanged()
		{				
			if(VilleChanged != null)
				VilleChanged(this, System.EventArgs.Empty);			
					
			#region user code OnVilleChanged
			#endregion user code OnVilleChanged				
		}

		public virtual System.Boolean Exclu
		{
			get
			{
				System.Boolean  value = this.m_Exclu;
				#region user code get public System.Boolean Exclu
				#endregion user code get public System.Boolean Exclu
				return value; 
			}
			set
			{ 
				#region user code set public System.Boolean Exclu
				#endregion user code set public System.Boolean Exclu				
				this.m_Exclu = value;
				OnExcluChanged();
			}
		}
		
		public event EventHandler ExcluChanged;
		
		protected virtual void OnExcluChanged()
		{				
			if(ExcluChanged != null)
				ExcluChanged(this, System.EventArgs.Empty);			
					
			#region user code OnExcluChanged
			#endregion user code OnExcluChanged				
		}

		public virtual System.Int32 NumeroAdherent
		{
			get
			{
				System.Int32  value = this.m_NumeroAdherent;
				#region user code get public System.Int32 NumeroAdherent
				#endregion user code get public System.Int32 NumeroAdherent
				return value; 
			}
			set
			{ 
				#region user code set public System.Int32 NumeroAdherent
				#endregion user code set public System.Int32 NumeroAdherent				
				this.m_NumeroAdherent = value;
				OnNumeroAdherentChanged();
			}
		}
		
		public event EventHandler NumeroAdherentChanged;
		
		protected virtual void OnNumeroAdherentChanged()
		{				
			if(NumeroAdherentChanged != null)
				NumeroAdherentChanged(this, System.EventArgs.Empty);			
					
			#region user code OnNumeroAdherentChanged
			#endregion user code OnNumeroAdherentChanged				
		}

		public virtual System.Boolean TarifReduit
		{
			get
			{
				System.Boolean  value = this.m_TarifReduit;
				#region user code get public System.Boolean TarifReduit
				#endregion user code get public System.Boolean TarifReduit
				return value; 
			}
			set
			{ 
				#region user code set public System.Boolean TarifReduit
				#endregion user code set public System.Boolean TarifReduit				
				this.m_TarifReduit = value;
				OnTarifReduitChanged();
			}
		}
		
		public event EventHandler TarifReduitChanged;
		
		protected virtual void OnTarifReduitChanged()
		{				
			if(TarifReduitChanged != null)
				TarifReduitChanged(this, System.EventArgs.Empty);			
					
			#region user code OnTarifReduitChanged
			#endregion user code OnTarifReduitChanged				
		}

		public virtual System.Int32 DateFinAdhesion
		{
			get
			{
				System.Int32  value = this.m_DateFinAdhesion;
				#region user code get public System.Int32 DateFinAdhesion
				#endregion user code get public System.Int32 DateFinAdhesion
				return value; 
			}
			set
			{ 
				#region user code set public System.Int32 DateFinAdhesion
				#endregion user code set public System.Int32 DateFinAdhesion				
				this.m_DateFinAdhesion = value;
				OnDateFinAdhesionChanged();
			}
		}
		
		public event EventHandler DateFinAdhesionChanged;
		
		protected virtual void OnDateFinAdhesionChanged()
		{				
			if(DateFinAdhesionChanged != null)
				DateFinAdhesionChanged(this, System.EventArgs.Empty);			
					
			#region user code OnDateFinAdhesionChanged
			#endregion user code OnDateFinAdhesionChanged				
		}

		public virtual System.Int32 MontantCotisation
		{
			get
			{
				System.Int32  value = this.m_MontantCotisation;
				#region user code get public System.Int32 MontantCotisation
				#endregion user code get public System.Int32 MontantCotisation
				return value; 
			}
			set
			{ 
				#region user code set public System.Int32 MontantCotisation
				#endregion user code set public System.Int32 MontantCotisation				
				this.m_MontantCotisation = value;
				OnMontantCotisationChanged();
			}
		}
		
		public event EventHandler MontantCotisationChanged;
		
		protected virtual void OnMontantCotisationChanged()
		{				
			if(MontantCotisationChanged != null)
				MontantCotisationChanged(this, System.EventArgs.Empty);			
					
			#region user code OnMontantCotisationChanged
			#endregion user code OnMontantCotisationChanged				
		}

		public virtual IList<Adoor.Emprunts.Emprunt > Emprunt
		{
			get { return this.m_Emprunt; }
		}

		public virtual IList<Adoor.Emprunts.Exemplaire > Exemplaire
		{
			get { return this.m_Exemplaire; }
		}

		
		/// <summary>
		/// Called when user is creating a new entity.
		/// </summary>
		protected virtual void OnCreate(object[] args)
		{
			Nom = "";		
	Prenom = "";		
	Rue = "";		
	Ville = "";		
	Exclu = false;		
	NumeroAdherent = 0;		
	TarifReduit = false;		
	DateFinAdhesion = 0;		
	MontantCotisation = 0;		
	
			#region user code OnCreate
			#endregion user code OnCreate			
		}
		
		/// <summary>
		/// Called when user is retreiving an entity from storage
		/// </summary>
		protected virtual void OnMaterialize()
		{
			#region user code OnMaterialize
			#endregion user code OnMaterialize
		}
		
		public virtual System.String ModifiePar
		{
			get
			{
				System.String  value = this.m_ModifiePar;
				#region user code get public System.String ModifiePar
				#endregion user code get public System.String ModifiePar
				return value; 
			}
		}
		
		public virtual System.DateTime ModifieLe
		{
			get
			{
				System.DateTime  value = this.m_ModifieLe;
				#region user code get public System.String ModifieLe
				#endregion user code get public System.String ModifieLe
				return value; 
			}
		}
		
		public virtual System.String TableName
		{
			get
			{
				System.String  value = this.m_TableName;
				#region user code get public System.String TableName
				#endregion user code get public System.String TableName
				return value; 
			}
		}
		
		protected abstract System.String m_ModifiePar { get; }
		
		protected abstract System.String m_TableName { get; }
		
		protected abstract System.DateTime m_ModifieLe { get; }
		
		
		protected abstract System.String m_Nom { get; set; }

		protected abstract System.String m_Prenom { get; set; }

		protected abstract System.String m_Rue { get; set; }

		protected abstract System.String m_Ville { get; set; }

		protected abstract System.Boolean m_Exclu { get; set; }

		protected abstract System.Int32 m_NumeroAdherent { get; set; }

		protected abstract System.Boolean m_TarifReduit { get; set; }

		protected abstract System.Int32 m_DateFinAdhesion { get; set; }

		protected abstract System.Int32 m_MontantCotisation { get; set; }

		protected abstract IList<Adoor.Emprunts.Emprunt > m_Emprunt { get; }

		protected abstract IList<Adoor.Emprunts.Exemplaire > m_Exemplaire { get; }


		#region user code class
		#endregion user code class
	}
}
